
/*
1、输入框绑定事件 值改变事件 input事件
  1、获取到输入框的值
  2、合法性判断
  3、检验通过 把输入框的值 发送到后台
  4、把返回的数据打印到页面上
2、防抖 （防止抖动）定时器  节流
  0、防抖 一般 输入框中  防止重复输入 重复发送请求
  1、节流 一般用在页面 下拉和上拉
  1、定义全局的定时器 id

*/
Page({
  data: {
    list:[],//搜索请求出来的数据列表
    btnStatus:false,//按钮的状态
    inpValue:'',//输入框输入的文字信息
  },
  TimeId:-1,

  //输入框的值改变就会触发的事件
  handerInput(e){
    var vm = this;
    // 1、获取输入框的值
    const value = e.detail.value;
    // 2、检验合法性
    if(!value.trim()){
      //值不合法
      //这里面可以判断输入框内 没有值
      vm.cancel();
      vm.setData({btnStatus:false});
      return;
    };
    // 3、装备发送请求获取数据
    clearTimeout(this.TimeId);
    this.TimeId = setTimeout(()=>{
      wx.request({
        url: 'https://api-hmugo-web.itheima.net/api/public/v1/goods/qsearch', 
        data: {
          query:value
        },
        success (res) {
          const list = res.data.message;
          vm.setData({list});
        }
      });
    },1000);
    vm.setData({btnStatus:true});
  },
  //取消按钮事件
  cancel(){
    this.setData({
      list:[],
      inpValue:'',
      btnStatus:false
    });
  }
})